package com.yixing.tech.wms.service;

import com.yixing.tech.common.base.BusinessException;
import com.yixing.tech.wms.stock.out.callback.error.TaskErrorCallbackVO;
import com.yixing.tech.common.entity.WCSTaskCallbackVO;
import org.bson.Document;

import java.util.List;

/**
 * @author yixing tech
 * @since 1.0.0
 */
public interface LineOperationService {

    List<Document> productLocations() throws BusinessException;

    List<Document>  rawLocations() throws BusinessException;

    boolean productCallEmpty(String materialCode, String endLocationCode) throws BusinessException;

    void productCallEmptyCallback(String taskCode, String method, String locCode, String podCode);

    default void productCallEmptyCallback(WCSTaskCallbackVO callbackVO){
        productCallEmptyCallback(callbackVO.getTaskCode(), callbackVO.getMethod(), callbackVO.getCurrentPositionCode(), callbackVO.getPodCode());
    }

    Object productCallEmptyErrorCallback(TaskErrorCallbackVO callbackVO) throws BusinessException;

}
